In removable memory modules, such as the MMC, busy signaling is defined in relation to, for example, data programming. The busy signal is output from the MMC to a host device and is used to indicate, in this case: “buffer ready for next data”. An erase command also uses the busy signal, but in this case it indicates “erase busy”. As there is generally only one busy signal line present in order to conserve pin count, the usage of the busy signal is not flexible.
The current definition for the busy signal in the MMC Association (MMCA) System is based on the fact that the software layers of the host device are typically implemented in such a way that data is transferred in blocks, for example in 16 k byte blocks. It is thus practical to use so-called multiple block write commands, as one block of data transferred over the MMC interface is only a fraction of the host device block size (typically the MMC block is 512 bytes). As the meaning of the busy signal is currently, for the data transfer case, “buffer ready,” the host may transfer multiple 512 byte blocks of data to the MMC without polling the status of the buffers.
However, as currently specified a problem is encountered in that after the last block has been transferred (e.g., the last 512 byte block of the total 16 k byte block) the host must begin polling a “programming ready” status signal, which becomes relevant at this point since there are no new blocks to be transferred. Requiring the host to poll the program ready status signal is an inefficient use of the host's processing capacity.